\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{groupreport}[2023/05/22]

% 定义标志变量
\newif\if@clear
\@clearfalse

% 处理选项：chinese 或 english
\DeclareOption{clear}{\@cleartrue}

% 处理所有选项
\ProcessOptions\relax

% 根据标志加载相应的文档类
\if@clear
  \LoadClass[12pt,a4paper,twoside,onecolumn, openany]{book}
\else
  \LoadClass[12pt,a4paper,twoside,onecolumn, openany]{ctexbook}
  \ctexset{chapter/break={}} % 中文章节设置
\fi

\RequirePackage[UTF8,heading = true]{ctex}%支持中文编译的宏包，编译一定要选择XeLatex啊！！
% \RequirePackage[utf8]{inputenc}
\RequirePackage{fontspec}  % 用于使用自定义字体，需要xetex编译
\RequirePackage{titlesec}
\RequirePackage[justification=centering]{caption}%图片标题居中
\RequirePackage{float}%浮动体宏包
\RequirePackage{attrib} % For XML2PDF use \tag{} for equation
\RequirePackage{subfigure}
% \RequirePackage{subcaption} % For XML2PDF use \tag{} for equation
\RequirePackage{subfloat}
\RequirePackage{tikz}
\RequirePackage{pdfpages}
\RequirePackage[hidelinks]{hyperref} % 目录超链接
\RequirePackage{booktabs}


% 设置参考文献格式
\RequirePackage[sort&compress]{natbib}              % BibTex
\RequirePackage{notoccite}
\newcommand\bibstyle@super{\bibpunct{[}{]}{,}{s}{,}{\textsuperscript{,}}}
\newcommand\bibstyle@numbers{\bibpunct{[}{]}{,}{n}{,}{,}}
\newcommand\bibstyle@authoryear{\bibpunct{(}{)}{;}{a}{,}{,}}
\bibpunct{[}{]}{,}{n}{}{}
\setlength{\bibsep}{0pt}
\newcommand{\upcite}[1]{\textsuperscript{\cite{#1}}}


\RequirePackage{geometry}%设定版面格式
\geometry{
  a4paper,
  top=25mm, bottom=25mm,
  left=30mm,
  right=20mm,
  headheight=2.17cm
}%设置标准页边距

% 使用自定义字体，需要xetex编译
\setmainfont{simsun.ttc}
% 系统的没有用我的
\setmainfont{times.ttf}[
  ItalicFont = timesi.ttf,
  BoldFont = timesbd.ttf,
  BoldItalicFont =timesbi.ttf
]
% 优先使用系统的times
% \setmainfont{Times New Roman}[
%   ItalicFont = Times New Roman Italic,
%   BoldFont = Times New Roman Bold,
%   BoldItalicFont = Times New Roman Bold Italic
% ]
% \newfontfamily\mychinesefont{SimHei}[BoldFont=SimHei Bold] % 假设 SimHei Bold 是正确的粗体变体名称

\RequirePackage{setspace} % 导入该命令可以设置行距  
\linespread{1.5} % 设置行距为1.5倍字体字号

% 宋体括号
\usepackage{xeCJK}
\newcommand{\songkuohao}[1]{{\setmainfont{simsun.ttc}\CJKglue(}#1{\setmainfont{simsun.ttc})}\CJKglue}

\newcommand{\tor}{{\setmainfont{times.ttf}/}}
\newcommand{\per}{{\setmainfont{times.ttf}\%}}


\RequirePackage{remreset}
\@removefromreset{table}{chapter}
\@removefromreset{figure}{chapter}
\@removefromreset{equation}{chapter}


% 设置图题格式
\RequirePackage{caption}
\DeclareCaptionFormat{masterfigure}{\zihao{5}{#1\textrm{#2}\ \ #3}}
\DeclareCaptionFormat{mastertable}{\zihao{5}{#1\textrm{#2}\ \ #3}}
\DeclareCaptionFormat{masterlstlisting}{\zihao{5}{#1\textrm{#2}\ \ #3}}
\captionsetup[figure]{format=masterfigure}
\captionsetup[table]{format=mastertable}
\captionsetup[lstlisting]{format=masterlstlisting}

\renewcommand{\thetable}{\arabic{table}}
\renewcommand {\thefigure} {\arabic{figure}}
\renewcommand{\thesubfigure}{\zihao{5}\songkuohao{\alph{subfigure}}}  % 子图标题
\renewcommand{\theequation}{\arabic{equation}}  % 公式编号



% 格式
\ctexset{
    chapter={
      format={\centering\zihao{3}\heiti},
      % nameformat={},
      aftername={\quad},
      % titleformat={},
      beforeskip={-.5\baselineskip},
      afterskip={\baselineskip},
      name={},number={\arabic {chapter}}
     },
    section={
      format={\heiti \zihao{4}},
      aftername={\quad},
      beforeskip={.5\baselineskip},
      afterskip={.5\baselineskip},
     },
    subsection={
            format={\zihao{-4}\heiti},
            aftername={\quad},
            beforeskip={.5\baselineskip},
            afterskip={.5\baselineskip},
        },
}

% 目录
\RequirePackage{titletoc}
\titlecontents{chapter}[0pt]{\zihao{-4}}{\thecontentslabel\ \ }{}
{\hspace{.5em}\titlerule*[4pt]{$\cdot$}\contentspage}
\titlecontents{section}[2em]{\vspace{0.1\baselineskip}\songti\zihao{-4}}{\thecontentslabel\ \ }{}
{\hspace{.5em}\titlerule*[4pt]{$\cdot$}\contentspage}
\titlecontents{subsection}[4em]{\vspace{0.1\baselineskip}\songti\zihao{-4}}{\thecontentslabel\ \ }{}
{\hspace{.5em}\titlerule*[4pt]{$\cdot$}\contentspage}
% \renewcommand{\contentsname}{\heiti\zihao{-2}\bfseries 目\qquad 录}
\renewcommand{\contentsname}{\heiti\zihao{-2}目\qquad 录}


% 页眉页脚
\RequirePackage{fancyhdr}
\pagestyle{fancy}
\fancyhead{}
\fancyfoot[C]{\zihao{-5}\thepage}
\renewcommand{\headrulewidth}{0pt}

\fancypagestyle{plain}{% 重定义“plain”样式，这是章节开始页默认使用的样式
  \fancyhf{}
  \fancyfoot[C]{\zihao{-5}\thepage}
}

% 公式使用times
% \usepackage{unicode-math}  % 用于书写正体希腊字母

\usepackage[T1]{fontenc}
\usepackage{mathptmx}
% \usepackage{upgreek}  % 用于书写正体希腊字母
\usepackage[libertine,vvarbb]{newtxmath}  % 用于书写正体希腊字母

% 公式编号也要用宋体
\usepackage{mathtools}
\newtagform{test}{{\setmainfont{simsun.ttc}\CJKglue(}}{{\setmainfont{simsun.ttc})\CJKglue}}
\usetagform{test}

% 表格文字垂直居中
\renewcommand{\arraystretch}{1.3}
% 表中一段文字水平居中/左/右
\newcommand{\mcr}[1]{\multicolumn{1}{r|}{#1}}
\newcommand{\mcc}[1]{\multicolumn{1}{c|}{#1}}
\newcommand{\mcl}[1]{\multicolumn{1}{l|}{#1}}
\newcommand{\mco}[2]{\multicolumn{1}{#1}{#2}}

% \multicolumn{1}{|c|}{状态}

% 浮动体单独在一页时，靠顶部
\makeatletter
\setlength{\@fptop}{5pt}
\makeatother

\renewcommand{\baselinestretch}{1.5}


\setlength{\parindent}{3em}
\setlength{\floatsep}{3pt plus 3pt minus 2pt}      % 图形之间或图形与正文之间的距离
\setlength{\abovecaptionskip}{10pt plus 1pt minus 1pt} % 图形中的图与标题之间的距离
\setlength{\belowcaptionskip}{0pt} % 表格中的表与标题之间的距离



